package com.example.ws.vo;

import lombok.Data;

/**
 * Rest请求标准响应结构体
 *
 */
@Data
public class RestResultVo<T> {
    //状态码 这里0表示success
    private int status;
    //错误信息
    private String massage;
    //响应内容
    private T data;

    /**
     *RestResultVo是一个泛型类，用于封装RESTful API的响应结果。
     * 这个类中的静态方法用于创建不同类型的响应对象，包括成功响应、
     * 包含数据的成功响应、失败响应（带消息）和失败响应（不带消息）
     */
    public static <T> RestResultVo<T> success(){
        RestResultVo<T> resultVo = new RestResultVo<>();
        resultVo.setStatus(200);
        return resultVo;
    }
    public static <T> RestResultVo<T> ok(T data){
        RestResultVo<T> resultVo = new RestResultVo<>();
        resultVo.setStatus(200);
        resultVo.setData(data);
        return resultVo;
    }

    public static <T> RestResultVo<T> failed(String msg){
        RestResultVo<T> resultVo = new RestResultVo<>();
        resultVo.setStatus(404);
        resultVo.setMassage(msg);
        return resultVo;
    }
    public static <T> RestResultVo<T> failed(){
        RestResultVo<T> resultVo = new RestResultVo<>();
        resultVo.setStatus(404);
        return resultVo;
    }
}
